<?php
namespace Admin\Controller;
use Think\Controller;
class CompetenceController extends CommonController {
    //权限列表页面
    public function index(){
        $this -> assign('test','权限列表');
        //实例化数据表类
        $auth_gtoup = M('auth_group');
        $res = $auth_gtoup
        -> field('zz_auth_group.title,zz_auth_group.id')
        -> where("`id`<>'1'")
        ->select();
        // var_dump($res);
        $this -> assign('res',$res);
        $this -> display();
    }

    //用户组添加页面
    public function add(){
        //实例化auth_rule
        $auth_rule = M();
        //得到管理组ID
        $gid = $_GET['id'];
        //得到该组的权限ID
        $quanxian = M('auth_group');
        $qxid = $quanxian -> field('rules,title') -> where('id='.$gid) -> select();
        //得到管理组名称
        $gtitle = $qxid[0]['title'];
        $qxid = explode(',', $qxid[0][rules]);
        // var_dump($qxid);
        $res = $auth_rule ->query("SELECT `id`,`title`,`sort` FROM `zz_auth_rule` WHERE `sort`<>'1' ");
        $array = array(2=>'管理员模块','统计数据模块','用户动态审查模块','用户图片审查模块','网站设置模块','前台样式设置模块','用户模块','会员管理模块','权限管理');
        // var_dump($array);
        // var_dump($res);
        $this -> assign('arr',$res);
        $this -> assign('qxid',$qxid);
        $this -> assign('gtitle',$gtitle);
        $this -> assign('array',$array);
        $this -> assign('test','权限设置');
        $this -> display();
    }

    //分组设置权限页面
    public function edit(){
        //实例化auth_rule
        $auth_rule = M();
        //得到管理组ID
        $gid = $_GET['id'];
        //得到该组的权限ID
        $quanxian = M('auth_group');
        $qxid = $quanxian -> field('rules,title') -> where('id='.$gid) -> select();
        //得到管理组名称
        $gtitle = $qxid[0]['title'];
        $qxid = explode(',', $qxid[0][rules]);
        // var_dump($qxid);
        $res = $auth_rule ->query("SELECT `id`,`title`,`sort` FROM `zz_auth_rule` WHERE `sort`<>'1' ");
        $array = array(2=>'管理员模块','统计数据模块','用户动态审查模块','用户图片审查模块','网站设置模块','前台样式设置模块','用户模块','会员管理模块','权限管理');
        // var_dump($array);
        // var_dump($res);
        $this -> assign('arr',$res);
        $this -> assign('qxid',$qxid);
        $this -> assign('gtitle',$gtitle);
        $this -> assign('array',$array);
        $this -> assign('test','权限设置');
        $this -> display();
    }

    //得到用户组列表的用户
    public function getadmin(){
        if (IS_AJAX) {
            //实例化数据表
            $auth_group_access = M('admin');
            $res = $auth_group_access
            -> field('zz_admin.username')
            -> where('group_id='.$_POST['id'])
            ->select();
            $res = array_column($res, 'username');
            $str = implode(' | ', $res);
            if ($res) {
                echo $str;
            }else{
                echo '该管理组暂无管理员~';
            }
        }else{
            $this -> error('非法操作');
        }
    }

    //权限编辑处理
    public function editdo(){
        // var_dump($_POST);die;
        //得到处理后的权限ID
        $qxid = implode(',',$_POST['com']);
        if ($qxid == null) {
            $qxid='';
        }
        //得到默认权限的id
        $auth_rule = M('auth_rule');
        $res = $auth_rule -> field('id') -> where(" `sort`='1' ") -> select();
        $res = array_column($res, 'id');
        $nid = implode(',', $res);
        //将得到的新的权限字符窜修改到数据库
        if ($qxid=='') {
            $data['rules'] = $nid;
        }else{
            $data['rules'] = $nid.','.$qxid;
        }
        //得到修改的管理员组名
        $data['title'] = $_POST['title'];
        //得到用户组ID
        $gid = $_POST['gid'];
        //实例化数据表
        $auth_group = M('auth_group');
        $res = $auth_group -> where("`id` = ".$gid) ->save($data);
        if ($res) {
            $this -> success('权限修改成功!');
        }else{
            $this -> error('权限修改失败!');
        }
    }

    //权限编辑处理
    public function adddo(){
        // var_dump($_POST);die;
        //得到处理后的权限ID
        $qxid = implode(',',$_POST['com']);
        if ($qxid == null) {
            $qxid='';
        }
        //得到默认权限的id
        $auth_rule = M('auth_rule');
        $res = $auth_rule -> field('id') -> where(" `sort`='1' ") -> select();
        $res = array_column($res, 'id');
        $nid = implode(',', $res);
        //将得到的新的权限字符窜修改到数据库
        if ($qxid=='') {
            $data['rules'] = $nid;
        }else{
            $data['rules'] = $nid.','.$qxid;
        }
        //得到修改的管理员组名
        $data['title'] = $_POST['title'];

        //实例化数据表
        $auth_group = M('auth_group');
        $res = $auth_group  ->add($data);
        // echo $auth_group-> _sql();die;
        if ($res) {
            $this -> success('权限添加成功!');
        }else{
            $this -> error('权限添加失败!');
        }
    }

    //删除管理员组的ajax
    public function delg(){
        if (IS_AJAX) {
            // var_dump($_POST);
            //得到管理员组的ID
            $id = $_POST['id'];
            //查询该组中是否有管理员
            $auth_group_access = M('auth_group_access');
            $res = $auth_group_access -> where("`group_id` = '.$id.'") -> select();
            if (!$res) {
                //当组中没有成员的时候 方可删除
                $auth_group = M('auth_group');
                $res = $auth_group -> where("`id` = '".$id."'") -> delete();
                // echo $auth_group -> _sql();
                if ($res) {
                     echo '管理员组删除成功!';
                }else{
                    echo '管理员组删除失败!';
                }
            }else{
                echo '管理员组中有成员~不可删除!';
            }
        }else{
            $this -> error('非法操作');
        }
    }

}
